package ReglasNegocio;
import AccesoDatos.*;
import java.util.*;
/**
 * @author ramayac
 */
public class logVisita extends ObjReglaNegocioBase{

    private String id; //porque lo ponen como string? aqui van "integer"
    private Gerente fkgerente; //Gerente (fuera mejor persona) que viaja
    private String descripcion; //Descripcion del viaje?
    private double viatico; //Dinero que se le dio
    private Date fecha; //Fecha de la visita
    private double distancia; //Distancia recorrida en kilometros por el gerente
    private String lugar; //Lugar a donde fue
    
    public logVisita(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor();
    }
    
    public logVisita() {
        super();
    }
    
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Gerente getFkgerente() {
        return fkgerente;
    }

    public void setFkgerente(Gerente fkgerente) {
        this.fkgerente = fkgerente;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public double getViatico() {
        return viatico;
    }

    public void setViatico(double viatico) {
        this.viatico = viatico;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public double getDistancia() {
        return distancia;
    }

    public void setDistancia(double distancia) {
        this.distancia = distancia;
    }

    public String getLugar() {
        return lugar;
    }

    public void setLugar(String lugar) {
        this.lugar = lugar;
    }
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[6];
        //id;fkgerente;descripcion;viatico;fecha;distancia;lugar;
        datos[0]=new Dato("id",this.id);
        datos[1]=new Dato("fkgerente",this.fkgerente.getId());
        datos[2]=new Dato("descripcion",this.descripcion);
        datos[3]=new Dato("viatico",String.valueOf(this.viatico));
        datos[4]=new Dato("fecha",this.fecha.toString());
        datos[5]=new Dato("distancia",String.valueOf(this.distancia));
        datos[6]=new Dato("lugar",this.lugar);
        
        return this.conn.Agregar(datos, this.getNombreObjeto());
    }
    
    @Override
    protected Boolean asignarCampos() {
        String buscar="select * from "+this.getNombreObjeto();
        buscar+=" where id='"+this.getIdentificador().getValor()+"'";
        
        Vista v=this.conn.crearVista(buscar);
        if (v.getNRegistros()>0) {
            //id;fkgerente;descripcion;viatico;fecha;distancia;lugar;
            Dato idGerente=new Dato("id", String.valueOf((String) v.getRegistro(0, 1)));
            this.fkgerente = null;
            this.fkgerente = new Gerente(idGerente);
            //this.fkgerente = (Gerente) v.getRegistro(0, 1);
            this.descripcion=(String) v.getRegistro(0, 2);
            this.viatico=(Double) v.getRegistro(0, 3);
            this.fecha=(Date) v.getRegistro(0, 4);
            this.distancia=(Double) v.getRegistro(0, 5);
            this.lugar=(String) v.getRegistro(0, 6);
            return true;
        }
        else
            return false;
    }
    
    @Override
    public void Actualizar() {
        //id;fkgerente;descripcion;viatico;fecha;distancia;lugar;
        String sql="update "+this.getNombreObjeto();
        sql+=" set ";
        sql+="fkgerente='"+this.fkgerente.getId()+"',";
        sql+="descripcion='"+this.descripcion+"',";
        sql+="viatico='"+this.viatico+"',";
        sql+="fecha='"+this.fecha+"',";
        sql+="distancia='"+this.distancia+"',";
        sql+="lugar='"+this.lugar+"' ";
        sql+="where id='"+this.id+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
    }
}
